package model.analityka.cechy;

import java.util.Arrays;
import java.util.Comparator;

import model.analityka.cechy.funkcje.FunkcjaAT;
import model.annotation.DomainFactory;



/**
 * Fabryka CechaDefinicja
 */
@DomainFactory
//TODO 2.2 testy do zastanowienia
public class CechaDefinicjaFabryka {
	
	public CechaDefinicja stworz (
			FunkcjaATEnum funkcjaEnum,
			CechaDefinicjaParametr[] cechaDefinicjaParametry) throws Exception {
		FunkcjaAT funkcjaAT = new FunkcjaATFabryka().stworz(funkcjaEnum, cechaDefinicjaParametry);
		
		Comparator<CechaDefinicjaParametr> c = new Comparator<CechaDefinicjaParametr>() {
			@Override
			public int compare(CechaDefinicjaParametr o1, CechaDefinicjaParametr o2) {
				return (int) Math.signum(o1.numer-o2.numer);
			}
		};
		
		Arrays.sort(cechaDefinicjaParametry, c);
		
		CechaDefinicja cechaDefinicja = 
				new CechaDefinicja(
						funkcjaEnum,
						cechaDefinicjaParametry,
						funkcjaAT);
		return cechaDefinicja;
	}
	
}
